/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cliente.auxiliar;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;

/**
 *
 * @author A8
 */
public class OpFicheiro {

    GereOperacoes gestor = null;

    public OpFicheiro(GereOperacoes gestor) {
        this.gestor = gestor;
    }

    public void gravaBuffer(ArrayList<String> buffer) {
        try {
            String nome = gestor.getArquivador().getNickname().concat("Tweets.txt");

            ObjectOutputStream gravaTweets = new ObjectOutputStream(new FileOutputStream(nome));
            gravaTweets.writeObject(buffer);
            System.out.println("---FICHEIRO CRIADO COM SUCESSO---");

        } catch (FileNotFoundException ex) {
            System.out.println("[ERRO]Not Found:"+ex.getMessage());
        } catch (IOException ex1) {
            System.out.println("[ERRO]IO:"+ex1.getMessage());
        }
    }

    public void leBuffer() {
        ObjectInputStream leTwets = null;
        try {
            File existe = null;
            String nome = gestor.getArquivador().getNickname().concat("Tweets.txt");
            existe = new File(nome);
            if (existe.exists()) {
                leTwets = new ObjectInputStream(new FileInputStream(nome));
                ArrayList<String> carrega = new ArrayList<String>();
                carrega = (ArrayList<String>) leTwets.readObject();

                if (carrega.size() > 0) {
                    for (int i = 0; i < carrega.size(); i++) {
                        System.out.println("Lido:" + carrega.get(i));
                        gestor.doTweet(carrega.get(i));
                    }
                    System.out.println("---FICHEIRO LIDO COM SUCESSO---\nA APAGAR...");
                    Runtime.getRuntime().exec("cmd /c del "+existe.getAbsolutePath());
                }
            } else {
                System.out.println("Nao existem tweets guardados!!!");
                //criaFicheiro();
            }
        } catch (IOException ex) {
            System.out.println("[ERRO]IO:" + ex.getMessage());
        } catch (Exception ex) {
            System.out.println("[ERRO]:" + ex.getMessage());
        } finally {
            try {
                if(leTwets!=null)
                    leTwets.close();
            } catch (IOException ex) {
                System.out.println("[ERRO]IO:" + ex.getMessage());
            }
        }
    }

    public void criaFicheiro() {
        try {
            String nome = gestor.getArquivador().getNickname().concat("Tweets.txt");
            File cria = new File(nome);
            if (cria.createNewFile()) {
                System.out.println("[INFO]:Novo ficheiro criado!");
            }
        } catch (IOException ex) {
            System.out.println("[ERRO]IO:Erro ao criar o ficheiro.\n" + ex.getMessage());
        }
    }
}
